package 贪心;
/**
 * 题目描述:
 * 给你一个字符串: 只包含 x  and .(dot) 这两种字符, x 表示 墙, .(dot) 表示 街道
 * 一盏灯 , 能照亮 相邻的 街道
 * greedy: 不好想, code easy
 * violence: 不好写 ,difficult to code
 */
public class Zuo街道亮灯问题 {
	
	
	
//	greedy 
	public static int greedy(String str) {
		char arr [] = str.toCharArray();
		int lights = 0;
		int i = 0;
		int len = arr.length;
		while(i <  len) {
			if(arr[i] == 'X')
				i++;
			else {
				/**
				 *  到这里说明当前的  arr[i] == . 
				 这个时候只需要考虑 arr[i + 1] 即可
				 */
				lights++;
				if(i + 1 == len)
					break;
				/**
				 * 如果 arr[i + 1] = x
				 * 那直接  light ++;
 				 */
				else if(arr[i + 1] == 'X')
					i = i + 2;
				/**
				 * 到达这里说明
				 * arr[i + 1] = .
				 * 那么 就有 一下两种情况:
				 * 情况①:
				 * arr[i + 2] = x 
				 * light ++; i = i + 3; (把灯 nums ++ ,跳到 i + 3 位置)
				 * 情况②:
				 * arr[i + 2] = . 
				 * light ++; i = i + 3; (把灯 nums ++ ,跳到 i + 3 位置)
				 * 所以上面两种 情况是 一样的 逻辑
				 * 所以直接合并了 
				 */
				else {
					i = i + 3;
				}
			}
			
		}
		return  lights;
	}
}
